/*
"石头、剪刀、布”也叫作"猜丁壳”，是猜拳的一种。游戏规则中，石头克剪刀，剪刀克布，布克石头。
红哥哥听闻程设的同学们都是擅长玩猜丁壳的高手，于是他决定举办一场主题为"猜丁壳”的游戏Party。想要参加Party，你必须Cospaly为石头、剪刀、布中的一种。红哥哥为了增加游戏难度，他限制了Party中每种角色的数量，其中石头r人，剪刀s人，布p人。这场游戏的规则是：在Party上，任意两个角色不同的人相遇，就会根据"猜丁壳”的规则淘汰一人，被淘汰的人不能继续参加游戏，直到场上只剩一种角色的人时，该角色就获得胜利，并且将得到红哥哥送出的"RSP King”奖章。另外，由于红哥哥友情赞助了无限大的场地，Party上的任意两个参赛人员相遇的几率都是相等的，也是随机的。

明天就是Party举办的日子了，你正在思考应该扮演哪种角色才能最大可能留到最后，于是机智的你决定计算一下每种角色最终获胜的概率期望。

输入：

输入包含三个整数r, s, p（1?≤?r, s, p?≤?100）
输出：

输出一行包含三个小数，分别代表石头、剪刀、布最终获胜的期望概率。结果输出到小数点后第六位。
*/

#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
#if defined(_WIN32) && !defined(__cplusplus)
#define inline __inline
#endif

#include <stdio.h>

#define MAX_NUM 105
#define max(a,b)    (((a) > (b)) ? (a) : (b))

double dp[MAX_NUM][MAX_NUM][MAX_NUM];
int main()
{
	int r, s, p;
	scanf("%d%d%d", &r, &s, &p);

	// 石头
	for (int i = 0; i < r + 1; i++)
	{
		for (int j = 0; j < s + 1; j++)
		{
			for (int k = 0; k < p + 1; k++)
			{
				if (i == 0) dp[i][j][k] = 0;
				else if (j == 0 && k == 0) dp[i][j][k] = 1;
				else if (j == 0) dp[i][j][k] = 0;
				else if (k == 0) dp[i][j][k] = 1;
				else dp[i][j][k] = (i * k * dp[i - 1][j][k] + i * j * dp[i][j - 1][k] + j * k * dp[i][j][k - 1]) / (i * j + j * k + k * i);
			}
		}
	}
	double rock = dp[r][s][p];

	// 剪刀
	for (int i = 0; i < r + 1; i++)
	{
		for (int j = 0; j < s + 1; j++)
		{
			for (int k = 0; k < p + 1; k++)
			{
				if (j == 0) dp[i][j][k] = 0;
				else if (i == 0 && k == 0) dp[i][j][k] = 1;
				else if (k == 0) dp[i][j][k] = 0;
				else if (i == 0) dp[i][j][k] = 1;
				else dp[i][j][k] = (i * k * dp[i - 1][j][k] + i * j * dp[i][j - 1][k] + j * k * dp[i][j][k - 1]) / (i * j + j * k + k * i);
			}
		}
	}
	double scissors = dp[r][s][p];

	// 布
	for (int i = 0; i < r + 1; i++)
	{
		for (int j = 0; j < s + 1; j++)
		{
			for (int k = 0; k < p + 1; k++)
			{
				if (k == 0) dp[i][j][k] = 0;
				else if (i == 0 && j == 0) dp[i][j][k] = 1;
				else if (i == 0) dp[i][j][k] = 0;
				else if (j == 0) dp[i][j][k] = 1;
				else dp[i][j][k] = (i * k * dp[i - 1][j][k] + i * j * dp[i][j - 1][k] + j * k * dp[i][j][k - 1]) / (i * j + j * k + k * i);
			}
		}
	}
	double paper = dp[r][s][p];

	printf("%.6lf %.6lf %.6lf\n", rock, scissors, paper);
	return 0;
}